package ltd.util;


import ltd.constant.StringConstant;

import java.util.Random;

import static ltd.constant.StringConstant.STRING_CNAME;

/**
 * 随机数工具类
 *
 * Created by chinalin on 2017/4/1.
 */
public class RandomUtil {

    //session生成的字符序列

    /**
     * session生成的字符序列
     * @return 随机的23位的字符串
     */
    public static String randomCreateSession(){
        int index;
        String newSession = "";
        for (int i = 0; i < 10; i++) {
            index = (int) (StringConstant.SESSION_STRING.length() * Math.random());
            newSession += StringConstant.SESSION_STRING.charAt(index);
        }
        return newSession + System.currentTimeMillis();
    }

    /**
     *
     * @return 10位的随机大写字母
     */
    public static String getCname(){
        return STRING_CNAME.charAt(RandomUtil.getRandom(0, 29)) + Long.toHexString(System.currentTimeMillis()).toUpperCase().substring(3) + STRING_CNAME.charAt(RandomUtil.getRandom(0, 29));
    }

    /**
     * 获取随机值
     * 包含[最小值]和[最大值]
     * @param min 最小值
     * @param max 最大值
     * @return min与max之间的随机数
     */
    public static int getRandom(int min, int max) {
        Random rdm = new Random();
        int temp = (rdm.nextInt() >>> 1) % (max - min + 1);
        rdm = null;
        return Math.abs(temp + min);
    }

    public static boolean nextBoolean(){
        return new Random().nextBoolean();
    }
}
